// page/wheat//pages/paimai_daka/paimai_daka.js
var app = getApp();
var util = app.util;
var maiList = app.http.anchor_mailistPost; //接口 排麦列表
var tiaodangJk = app.http.setTiaodangPost; //接口 跳档
var get_dakadata = app.http.get_dakadataPost;//接口 大光福利.冠厅等等列表  
var save_benefit = app.http.save_benefitsPost;//接口 打卡保存
var upload_img = app.http.config.upload_img     //接口 上传图片
var base_punish = app.http.base_punishPost     //接口 修改魅力值1 修改本档任务2  修改惩罚措施3  修改补档工资
var updateStatus = app.http.updateStatusPost   //接口 更新状态
var gobudang = app.http.gobudangPost   //接口 发起补档
var cftype = app.http.check_cf_typePost //判断惩罚方式
var savedakainfo = app.http.save_dakainfoPost //接口提交打卡信息
var check_role = app.http.check_rolePost      //接口检查角色  role 1主持  2主播  3既不是主播也不是主持
var settimepaimmai;   //排麦接口定时
var historyJiekou = app.http.historyPost //接口历史记录
Page({

  /**
   * 页面的初始数据
   */
  data: {
    jurisdiction: false            // false 只能看 不能操作
    , is_onshow: true               //true 调onshow 方法 false不调
    , tab1Index: 0                  //tab 切换
    , tiaodang_showModal: false    //跳档标记弹出框  false 隐藏
    , modalDlgHeight: ''           // 跳档标记弹出框高度  
    , cal: []                       //跳档弹框 记录取消跳档的用户id
    , budang: []                   //跳档弹框 记录跳档的用户id
    , addinbtn: 0                   //0不显示补档按钮  
    , get_dakadata: []              //大光福利.冠厅等等列表
    , dagunagButton: [{ text: '取消' }, { text: '确定', extClass: 'daguangSure' }]   //大光福利弹出框 按钮
    , dialogDaguangShow: false       //大光福利 弹出框  true显示 
    , isedit: 1                       // 打卡 0是新增   1 是修改 默认
    , kong_num: 0                     //未排的数量
    , tiaodangBjShow: 0              // 1 显示跳档标记
    , roles: 3                         // 1主持人 2主播  3既不是主播也不是主持
    , dakaMailistArr:[]
    , dakadatalistArr:[]  
    , update_status: 0                 //1是补卡
    , tips:0                           //更换主持提示  
    , zhuchidaka_isshow:0              //0 不显示 1显示
    , typeAndshouyiren:true           //true 是大光和福利和惩罚  的类型和用户人都填写  false 则非
    , maiList_copy:[]                  //排麦列表复制  点击跳档时还原    
    ,daguangInputNumber:''             //大光默认数字                
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this
    wx.getSystemInfo({
      success: function (res) {
        var itemHeight = res.windowHeight;
        //底部高度 rpx
        var safeAreaBottom = (res.screenHeight - res.safeArea.bottom) * (750 / res.windowWidth)  
        that.setData({
          windowHeight: itemHeight,
          safeAreaBottom
        });
      }
    })
          //计算scrooll的 高度px
        //  let headHeightpx =  124*wx.getSystemInfoSync().windowWidth/750;
          let headHeightpx =  120 / 750 * wx.getSystemInfoSync().windowWidth;
          let maxscrollheight = wx.getSystemInfoSync().windowHeight - headHeightpx
          console.log(wx.getSystemInfoSync().windowHeight,headHeightpx,maxscrollheight);
          this.setData({
            maxscrollheight
          })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
 

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    var that = this
    //档期
    var dangqiInfo = wx.getStorageSync('dangqiInfo')
    var beteenTime = dangqiInfo.starttime + " — " + dangqiInfo.endtime
    var daka_time = wx.getStorageSync('hall_info').daka_time //打卡时间
    this.setData({
      dangqiInfo,
      daka_time
    })


    //主播修改主持返回本页面 显示的提示信息
  
    if (this.data.tips) {
      wx.showToast({
        title: '你已成为本档主持，原麦序已标记跳档',
        icon: 'none'
      })
    }
    
    //页面标题为路由参数
    wx.setNavigationBarTitle({
      title: beteenTime
    })

    //调接口
    if (this.data.is_onshow) {
      //排麦表
      this.getmaiList(true);
      //调用打卡组件的初始化方法
      var mydaka = this.selectComponent("#my-daka")
      mydaka.showjiekou()
  
      //角色接口
      this.check_roleJk(function(err,res){
             if(!err){
              
               let roles = res.role
               //打卡时间已过 档期内是主播 外是小程序管理员 则改成 是小程序管理员
               if (that.outtime() && roles == 2 && wx.getStorageSync("userinfo").roles.indexOf("1") != -1){
                 roles = 3
               }
               that.setData({
                 roles: roles
               }) 
                

               //分享过来的页面 不是主播 不是主持 不是小程序管理员 
               if (wx.getStorageSync("userinfo").roles.indexOf("1") == -1 && res.role != 1 && res.role != 2 ){
                   wx.redirectTo({
                      url: '../anchor_yipai/anchor_yipai'
                    })
               }

             }else{
               console.log("获取角色接口报错")
             }
      }); 
    }  
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    clearInterval(settimepaimmai);
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    //更新状态接口
    wx.removeStorageSync("update_status");
    clearInterval(settimepaimmai);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    var dangqiInfo = wx.getStorageSync('dangqiInfo')
    var endtime = dangqiInfo.riqi + " " + dangqiInfo.endtime
    if (new Date().getTime() > util.riqiTime(endtime)) {
      var title = "打卡"
    } else {
      var title = "直播中"
    }
    return util.shareSet(this, title);
  },
  /*
   * tab 切换
   */
  onTab1Click(event) {
    let index = event.currentTarget.dataset.index;
    this.setData({
      tab1Index: index,
    })
  },
  /*
   *  swipe 切换
   */
  swiperChange(event) {
    this.setData({
      tab1Index: event.detail.current,
    })    
  },
  /*
   *  swipe 切换
   */
  animationfinish(event) {
    this.setData({
      tab1Index: event.detail.current,
    })
  },
  /*
 *  跳档标记 显示弹框
 */
  tiaodangshow: function () {
    var that = this;

    var dangqiInfo = wx.getStorageSync('dangqiInfo')
    var endtime = dangqiInfo.riqi + " " + dangqiInfo.endtime
    if (new Date().getTime() > util.riqiTime(endtime)) {
      wx.showToast({
        title: '直播已经结束，不能标记跳档',
        icon: 'none',
        duration: 2000
      })
      return false;
    }


    this.setData({
      tiaodang_showModal: true,
      cal:[],
      budang:[],
    })
    //动态获取 弹出框高度 定位弹出框上下位置
    wx.createSelectorQuery().select('.modalDlg').boundingClientRect(function (rect) {
      that.setData({
        modalDlgHeight: rect.height
      })
    }).exec()
  },
  /*
   *  跳档标记 阻止touchmove这样一个冒泡事件继续向下传递
   */
  preventTouchMove: function () {
  },
  /*
   *  跳档标记 关闭弹框
   */
  closeTiaodang: function () {
    this.setData({
      tiaodang_showModal: false
    })
  },
  //获取排麦列表
  getmaiList: function (flag = true) {
    var dangqiInfo = wx.getStorageSync('dangqiInfo')
    var token = wx.getStorageSync('userinfo').token
    let hall_id = wx.getStorageSync("hall_info").id
    console.log("打卡页面");
    maiList({
      token,
      hall_id,
      dangqiid: dangqiInfo.id
    }, flag).then(re => {
      if (re.code == 0) {

        //正常排麦数
        var yipai_num = 0
        for (var i = 0; i < re.data.length; i++) {
          //正常排麦
          if (re.data[i].addin != 1) {
            yipai_num++
          }
          //设置日魅力 增加字段rimeiliUp 1 不能修改
          //if (re.data[i].rimeili == 1 && re.data[i].is_first_dq == 0 ){ //0不是第一个档期
          if (re.data[i].rimeili == 1 ){ 
            re.data[i].rimeiliUp = 1
          }

        }

        //跳档标记是否显示
        var time = util.riqiTime(dangqiInfo.riqi + " " + dangqiInfo.starttime)
        var tiaodangBjShow = 0;
        if (dangqiInfo.manager_id == re.myuid && new Date().getTime() > time) {
          tiaodangBjShow = 1
        }
        
        //补档按钮 1.主持人 2档期没有结束 3.可以发起补档
        var addinbtn = 0
        var endtime = util.riqiTime(dangqiInfo.riqi + " " + dangqiInfo.endtime)
        if (new Date().getTime() < endtime && re.addinbtn && re.myuid == dangqiInfo.manager_id){
          addinbtn = 1
        } 

        this.setData({
          kong_num: dangqiInfo.maxmic - yipai_num,
          maiList: re.data,
          maiList_copy: re.data,
          tiaodang_list: re.tiaodang_list,
          renwucf_list: re.renwucf_list,   //任务未完成时的  惩罚列表
          addinbtn: addinbtn,
          zhuchi_info: re.zhuchi_info,
          uid: re.myuid,
          addStatus: re.addinbtn,
          zc_renwucf_list: re.zc_renwucf_list, //主持人惩罚
          tiaodangBjShow
        })
        
        
      } else {
        console.log("排麦list 接口返回数据失败");
      }
    })
  },
  //跳档标记 取消跳档
  uiddel: function (e) {
    console.log(e);
    var that = this
    //
    var index = e.currentTarget.dataset.index;
    var maiList = this.data.maiList;
    var cal = this.data.cal
    var i = cal.indexOf(String(maiList[index].uid));
    if (i == -1) {
      //不存在
      cal.push(String(maiList[index].uid));
    } else {
      cal.splice(i, 1);
    }
    that.setData({
      cal
    })
  },
  //跳档标记 增加跳档
  addBudang: function (e) {
    var that = this
    var index = e.currentTarget.dataset.index;
    var maiList = this.data.maiList;
    var budang = this.data.budang
    var i = budang.indexOf(String(maiList[index].uid));
    if (i == -1) {
      //不存在
      budang.push(String(maiList[index].uid));
    } else {
      budang.splice(i, 1);
    }
    that.setData({
      budang
    })
  },
  //跳档标记选择
  tiaodangbj: function (e) {
    var that = this
    var index = e.detail.index;
    var maiList = this.data.maiList;
    // 取消跳档
    var cal = that.data.cal;
    if (maiList[index].tripstop && !maiList[index].addin) {
      if (!maiList[index].trShow) {
        maiList[index].trShow = false
        cal.push(String(maiList[index].uid));
      } else {
        var i = cal.indexOf(String(maiList[index].uid))
        cal.splice(i, 1);
      }
      var trShow = 'maiList[' + index + '].trShow'
      that.setData({
        [trShow]: !maiList[index].trShow,
        cal: cal
      })
    } else {
      //未补档
      var budang = [];
      if (!maiList[index].addinShow) {
        maiList[index].addinShow = true
        budang.push(String(maiList[index].uid));
      } else {
        var i = budang.indexOf(String(maiList[index].uid))
        budang.splice(i, 1);
      }
      var addinShow = 'maiList[' + index + '].addinShow'
      that.setData({
        [addinShow]: !maiList[index].addinShow,
        budang: budang
      })
    }
  },
  //跳档标记 确定按钮
  tiaodangSure: function () {

    //跳档人数不能补档人数
    var tiaodang = 0;
    var budang = 0;
    var maiList = this.data.maiList
    for (var i = 0; i < maiList.length; i++) {
      if (maiList[i].tripstop) {
        tiaodang++;
      }
      if (maiList[i].addin) {
        budang++;
      }
    }
    if ((tiaodang + this.data.budang.length - this.data.cal.length) < budang) {
      wx.showToast({
        title: '跳档数不能小于补档数',
        icon: 'none'
      })
      return;
    }

    //
    var dangqiInfo = wx.getStorageSync('dangqiInfo')
    var token = wx.getStorageSync('userinfo').token
    var budang = this.data.budang
    var uid_del = this.data.cal
    tiaodangJk({
      token,
      did: dangqiInfo.id,
      uid_add: budang.join(","),
      uid_del: uid_del.join(",")
    }).then(re => {
      console.log(re);
      if (re.code == 0) {
        //关闭弹框
        this.closeTiaodang()
        //刷新排麦列表
        this.getmaiList()
        //取消跳档标记 和  标记跳档标记
        this.setData({
          cal: [],
          budang: []
        })
      } else {
        console.log("跳档接口返回数据失败");
      }
    })
  },
  //发起补档
  budangUrl() {
    var dangqiInfo = wx.getStorageSync('dangqiInfo')
    var endtime = dangqiInfo.riqi + " " + dangqiInfo.endtime
    if (new Date().getTime() > util.riqiTime(endtime)) {
      wx.showToast({
        title: '直播已经结束，不能发起补档',
        icon: 'none',
        duration: 2000
      })
      return false;
    }
    //参数
    var token = wx.getStorageSync('userinfo').token
    var dangqi_id = wx.getStorageSync('dangqiInfo').id
    //接口
    gobudang({
      token,
      dangqi_id
    }).then(re => {
      console.log(re);
      if (re.code == 0) {
        wx.redirectTo({
          url: "../anchor_budang/anchor_budang"
        })
      } else {
        console.log("补档接口返回数据失败");
      }
    })

  },

  // 没有操作权限
  updateDakaSign() {
     
     //补卡
     if (wx.getStorageSync("update_status")){
       return 1;
     }  
     
    //超过打卡时间
    var daka_time = this.data.daka_time
    var dangqiInfo = wx.getStorageSync('dangqiInfo')
    var endtime = dangqiInfo.riqi + " " + dangqiInfo.endtime
    if (new Date().getTime() > (util.riqiTime(endtime) + Number(daka_time) * 60 * 1000)) {
      wx.showToast({
        title: '已经超过打卡时间，不能打卡',
        icon: 'none',
        duration: 2000
      })
      return false;
    }
    
  },

  
  //更换主持人
  updatemainUrl(){
    // 是否超过档期结束时间
    var endtime = wx.getStorageSync('dangqiInfo').riqi + " " + wx.getStorageSync('dangqiInfo').endtime
    if (new Date().getTime() > (util.riqiTime(endtime))) {
        wx.showToast({
          title: '直播已经结束不能更换主持',
          icon: 'none'
        })
    }else{
      let roles = wx.getStorageSync('userinfo').roles
      if(roles.indexOf("1") > -1){
        wx.navigateTo({
          url: "../xcx_chair/xcx_chair"
        });
      }else{
        wx.navigateTo({
          url: "../xcx_chairChange/xcx_chairChange"
        });
      }
     
    }
  },

  //角色接口
  check_roleJk(callback){
    var that =this;
    let token = wx.getStorageSync("userinfo").token
    let c_uid = wx.getStorageSync("userinfo").uid
    let dangqi_id = wx.getStorageSync("dangqiInfo").id
    let hall_id = wx.getStorageSync("hall_info").id
    check_role({
      token,
      hall_id,
      c_uid,
      dangqi_id
    }).then(function (n) {
      if(n.code == 0){
        callback(null, n)
      }else{
        callback(n);
      }
    });
  },

 //打卡结束时间  1是超过 0未超过
 outtime(){
    var daka_time = wx.getStorageSync('hall_info').daka_time;
    var endtime = wx.getStorageSync('dangqiInfo').riqi + " " + wx.getStorageSync('dangqiInfo').endtime
    //主持人在规定时间内可以打卡
    if ((new Date().getTime() > (util.riqiTime(endtime) + Number(daka_time) * 60 * 1000))) {
      return 1;
    }else{
      return 0;
    }
  },
  //打卡 福利弹框
  bottomDialog(e){
    var bottomDialog = this.selectComponent("#bottomDialog")
    bottomDialog.setData({
      hideFlag: false,
      selectArray:e.detail.bottomDialogArray,
      title:e.detail.bottomDialogTitle
    })
    bottomDialog.showModal();
  },
  //打卡 福利弹框回调
  bottomDialogIndex(e){
    var mydaka = this.selectComponent("#my-daka")
    mydaka.bottomDialogIndex(e) 
  },
  //打卡 大光弹框
  daguangDialog(e){
    this.setData({
      daguangInputNumber:''
    })
    var bottomDialog = this.selectComponent("#daguangDialog")
    bottomDialog.setData({
        show:e.detail.dialogDaguangShow,
        buttons:[{
          text: '取消'
          }, {
              text: '确定',
              extClass: 'daguangSure'
          }] //大光福利弹出框 按钮
    })
  },
  //打卡 大光弹框回调
  daguangSure(e){
    var mydaka = this.selectComponent("#my-daka")
    mydaka.daguangSure(e)
  },
  //打卡 大光弹框输入数字回调
  daguangNumber(e) {
    var mydaka = this.selectComponent("#my-daka")
    mydaka.daguangNumber(e)
  },
  //打卡 受益人
  shouyiren(e){
     this.setData({
      bottomindex:e.detail.bottomindex,
      userindex:e.detail.userindex,
      get_dakadata:e.detail.get_dakadata,
      isedit:e.detail.isedit,
      tid:e.detail.tid,
     })
  },
  //打卡 受益人页面调用的 方法
  addUserdaka(){
    var that = this;
    var mydaka = this.selectComponent("#my-daka")
    //黑麦
    var bottomindex = this.data.bottomindex;
    var dakadatabottomindex = this.data.get_dakadata[bottomindex] //
    if(dakadatabottomindex.type == 4){
      if (that.data.isedit == 0){//新增
        mydaka.setData({
          tid: dakadatabottomindex.benefitlist.id,
        })
      }
    }
    mydaka.setData({
      get_dakadata:that.data.get_dakadata,
      is_onshow: 0     // 不调用onshow 里的方法
    })
    mydaka.addUserdaka()
  },
  //打卡按钮
  showdelet(e){
    console.log(e);
    this.setData({
      showdelet:e.detail.showdelet
     })
  },
  //打卡
  godaka(){
    var mydaka = this.selectComponent("#my-daka")
    mydaka.godaka()
  },
  //历史记录
  bindhistory(){
    var that = this
    var token = wx.getStorageSync('userinfo').token;
    var qid = wx.getStorageSync('dangqiInfo').id
    historyJiekou({
        token,
        qid,
    },false).then(res=>{
          if(res.code == 0){
             that.setData({
                 Historylist:res.data,
                 mask:1
             })
          }
    })
  },
})